//package org.execute.tool.ai使用;
//
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//
//import java.io.BufferedReader;
//import java.io.InputStreamReader;
//
//public class GroqJava8StreamExample {
//    // 从环境变量获取密钥
//    private static final String API_KEY = "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";
//    private static final String API_URL = "https://api.groq.com/openai/v1/chat/completions";
//
//    public static void main(String[] args) {
//        validateApiKey(); // 密钥校验
//
//        String requestBody = buildRequestBody();
//
//        try (CloseableHttpClient client = HttpClients.createDefault()) {
//            HttpPost post = buildHttpRequest(requestBody);
//
//            HttpResponse response = client.execute(post);
//            checkResponseStatus(response);
//
//            processStreamResponse(response);
//        } catch (Exception e) {
//            handleException(e);
//        }
//    }
//
//    private static void validateApiKey() {
//        if (API_KEY == null || API_KEY.isEmpty()) {
//            throw new SecurityException("未检测到 GROQ_API_KEY 环境变量");
//        }
//        if (!API_KEY.startsWith("gsk_")) {
//            throw new SecurityException("API密钥格式错误");
//        }
//    }
//
//    private static String buildRequestBody() {
//        return new JSONObject()
//                .fluentPut("model", "llama3-70b-8192")
//                .fluentPut("messages", new JSONArray()
//                        .add(new JSONObject()
//                                .fluentPut("role", "user")
//                                .fluentPut("content", "你好")))
//                .fluentPut("temperature", 1)
//                .fluentPut("max_tokens", 1024)
//                .fluentPut("stream", true)
//                .toJSONString();
//    }
//
//    private static HttpPost buildHttpRequest(String body) {
//        HttpPost post = new HttpPost(API_URL);
//        post.setHeader("Content-Type", "application/json");
//        post.setHeader("Authorization", "Bearer " + API_KEY);
//        post.setHeader("User-Agent", "JavaGroqClient/1.0");
//        post.setEntity(new StringEntity(body, "UTF-8"));
//        return post;
//    }
//
//    private static void checkResponseStatus(HttpResponse response) throws Exception {
//        int statusCode = response.getStatusLine().getStatusCode();
//        if (statusCode != 200) {
//            String errorBody = JSON.toJSONString(response);
//            throw new RuntimeException("API错误 " + statusCode + ": " + errorBody);
//        }
//    }
//
//    private static String readErrorBody(HttpResponse response) {
//        try (BufferedReader reader = new BufferedReader(
//                new InputStreamReader(response.getEntity().getContent()))) {
//            StringBuilder sb = new StringBuilder();
//            String line;
//            while ((line = reader.readLine()) != null) {
//                sb.append(line);
//            }
//            return parseErrorJson(sb.toString());
//        } catch (Exception e) {
//            return "无法读取错误信息";
//        }
//    }
//
//    private static String parseErrorJson(String raw) {
//        try {
//            JSONObject error = JSON.parseObject(raw).getJSONObject("error");
//            return error.getString("message");
//        } catch (Exception e) {
//            return raw.length() > 100 ? raw.substring(0, 100) + "..." : raw;
//        }
//    }
//
//    private static void processStreamResponse(HttpResponse response) throws Exception {
//        try (BufferedReader reader = new BufferedReader(
//                new InputStreamReader(response.getEntity().getContent()))) {
//            String line;
//            while ((line = reader.readLine()) != null) {
//                if (line.trim().isEmpty()) continue; // 跳过SSE空行
//                processSSELine(line);
//            }
//        }
//    }
//
//    private static void processSSELine(String line) {
//        if (line.startsWith("data: ")) {
//            String jsonStr = line.substring(6).trim();
//            if ("[DONE]".equals(jsonStr)) return;
//
//            try {
//                JSONObject json = JSON.parseObject(jsonStr);
////                json.getJSONArray("choices")
////                        .stream()
////                        .map(obj -> ((JSONObject) obj).getJSONObject("delta"))
////                        .filter(delta -> delta.containsKey("content"))
////                        .forEach(delta -> System.out.print(delta.getString("content")));
//            } catch (Exception e) {
//                System.err.println("\nSSE数据解析失败: " + e.getMessage());
//            }
//        }
//    }
//
//    private static void handleException(Exception e) {
//        if (e.getMessage().contains("Cloudflare")) {
//            System.err.println("网络被拦截：请尝试：\n1. 更换网络环境\n2. 关闭VPN\n3. 等待5分钟后重试");
//        } else {
//            e.printStackTrace();
//        }
//    }
//}